home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / demos / signal / spect.dem < prev    next >
Text File  |  1999-09-16  |  1KB  |  54 lines

  1. function spectdem()
  2. ////////////////////////
  3. //SPECTRAL ESTIMATION///
  4. ////////////////////////
  5.  
  6. xselect();xbasc(); 
  7.  
  8. //generate white data
  9.    rand('normal');
  10.    rand('seed',0);
  11.    x=rand(1:1024-33+1);
  12.  
  13. //make low-pass filter with eqfir
  14.    nf=33;
  15.    bedge=[0 .1;.125 .5];
  16.    des=[1 0];
  17.    wate=[1 1];
  18.    h=eqfir(nf,bedge,des,wate);
  19.  
  20. //filter white data to obtain colored data
  21.    h1=[h 0*ones(1:maxi(size(x))-1)];
  22.    x1=[x 0*ones(1:maxi(size(h))-1)];
  23.    hf=fft(h1,-1);
  24.    xf=fft(x1,-1);
  25.    yf=hf.*xf;
  26.    y=real(fft(yf,1));
  27.  
  28. //plot magnitude of filter
  29.    h2=[h 0*ones(1:167)];
  30.    hf2=fft(h2,-1);
  31.    hf2=real(hf2.*conj(hf2));
  32.    hsize=maxi(size(hf2));
  33.    fr=(1:hsize)/hsize;
  34.    plot2d(fr',log(hf2)');
  35.    xtitle('Data spectrum','frequency','magnitude');
  36.    halt();xbasc(); 
  37.  
  38. //pspect example
  39.    [sm1]=pspect(100,200,'tr',y);
  40.    smsize=maxi(size(sm1));
  41.    fr=(1:smsize)/smsize;
  42.    plot2d(fr',log(sm1)')
  43.    xtitle('Spectral estimation','frequency','spectral power');
  44.    halt();xbasc(); 
  45.  
  46. //cspect example
  47.    [sm2]=cspect(100,200,'tr',y);
  48.    smsize=maxi(size(sm2));
  49.    fr=(1:smsize)/smsize;
  50.    plot2d(fr',log(sm2)');
  51.    xtitle(['Spectral estimation ; periodogram method'],' ' ,' ' )
  52.    halt();
  53.    xbasc(); 
  54.